Skip to content

feat(linux-wallpaperengine-controller): improve panel controls, extra properties, and configuration handling#596

Merged
spiros132 merged 24 commits intonoctalia-dev:mainfrom
PaloMiku:main
Apr 13, 2026
Merged

feat(linux-wallpaperengine-controller): improve panel controls, extra properties, and configuration handling#596
spiros132 merged 24 commits intonoctalia-dev:mainfrom
PaloMiku:main

Conversation

@PaloMiku
Copy link
Copy Markdown
Contributor

@PaloMiku PaloMiku commented Apr 8, 2026

Summary

  • Reworked the wallpaper panel with search, resolution filtering, pagination, richer sidebar metadata, clickable workshop links, and clearer engine status / start-stop controls.
  • Added extra property inspection and editing support, plus a compatibility quick-check flow that can scan wallpapers and mark entries that may fail.
  • Expanded plugin configuration with icon color, clamp mode, no-automute audio behavior, better runtime option persistence, and broader localization updates.

What Changed

  • Added wallpaper list improvements:
    • search by wallpaper name or ID
    • resolution filtering
    • paginated grid rendering for better performance on large libraries
    • updated badge layout and clearer sidebar metadata
  • Added sidebar quality-of-life improvements:
    • clickable workshop ID link that opens the corresponding Steam Workshop page
    • runtime status badge in the panel header
    • start / stop toggle button in the header
  • Added extra properties support:
    • parse linux-wallpaperengine --list-properties
    • render editable supported properties in the sidebar
    • persist per-wallpaper property overrides
    • normalize known property labels such as theme color
  • Added compatibility quick check:
    • scan all wallpapers for extra property compatibility
    • mark wallpapers with a may fail badge
    • show a completion toast with scanned / flagged counts
  • Expanded settings:
    • icon color customization
    • default clamp mode
    • keep wallpaper audio playing while other applications output sound
    • improved FPS / volume handling and related labels
  • Cleaned up runtime configuration behavior:
    • aligned global-only runtime options with global persistence
    • removed stale per-screen runtime option remnants
    • kept scaling as per-screen while treating clamp as a single global engine argument
  • Refreshed README, preview assets, and translations across English, Simplified Chinese, Traditional Chinese, Japanese, and Russian.

Why

  • The panel had become difficult to use with large wallpaper libraries and did not expose enough runtime controls or wallpaper metadata.
  • linux-wallpaperengine supports useful runtime flags and property inspection that were not surfaced in the plugin UI.
  • Several settings and runtime behaviors were inconsistent between UI state, saved configuration, and actual engine command construction; this update makes those paths more predictable.

Preview Panel (New):

图片

Copilot AI review requested due to automatic review settings April 8, 2026 12:30
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR improves the wallpaper selection panel’s UX and localization by adding toast feedback for engine actions, expanding translations (including a new Russian locale), and refining panel UI elements (filters, badges, and multi-display targeting).

Changes:

  • Add localized toast notifications for reload/stop actions (including “reload skipped”).
  • Enhance the panel UI with resolution filtering, clearer badges/labels, and an updated multi-display target selector.
  • Expand i18n strings across EN/JA/ZH + add RU, and localize unit suffixes in settings.

Reviewed changes

Copilot reviewed 10 out of 11 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
linux-wallpaperengine-controller/Main.qml Adds optional toast feedback to reload() / stopAll() and imports Toast service.
linux-wallpaperengine-controller/BarWidget.qml Triggers toast-enabled reload/stop from the bar widget context actions.
linux-wallpaperengine-controller/Panel.qml Adds resolution filtering UI, new badges, refactors apply-target UI, and updates empty-state messaging.
linux-wallpaperengine-controller/Settings.qml Localizes FPS/% unit suffixes via translation keys.
linux-wallpaperengine-controller/manifest.json Bumps plugin version to 1.1.0.
linux-wallpaperengine-controller/i18n/en.json Adds toast + new panel strings, updates wording, adds unit strings.
linux-wallpaperengine-controller/i18n/ja.json Adds toast + new panel strings, updates wording, adds unit strings.
linux-wallpaperengine-controller/i18n/zh-CN.json Adds toast + new panel strings, updates wording, adds unit strings.
linux-wallpaperengine-controller/i18n/zh-TW.json Adds toast + new panel strings, updates wording, adds unit strings.
linux-wallpaperengine-controller/i18n/ru.json New full Russian translation coverage including toast + units.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread linux-wallpaperengine-controller/Panel.qml
Comment thread linux-wallpaperengine-controller/Panel.qml Outdated
Comment thread linux-wallpaperengine-controller/Panel.qml Outdated
Comment thread linux-wallpaperengine-controller/Panel.qml
Comment thread linux-wallpaperengine-controller/Panel.qml
@PaloMiku
Copy link
Copy Markdown
Contributor Author

PaloMiku commented Apr 9, 2026

I think it's pretty good now (current version 1.1.2).

Copy link
Copy Markdown
Collaborator

@spiros132 spiros132 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me! :D

@ItsLemmy

{
"id": "linux-wallpaperengine-controller",
"name": "Linux WallpaperEngine Controller",
"version": "1.0.6",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

version is sus?
the sementic release is normally done with minor and major patches. it looks like you're doing two patches and one minor. when a minor is made in a pr it includes the patches

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I developed this PR iteratively: first a few small fixes, then a larger UI improvement.

I previously conducted multiple rounds of small-scale testing in my personal repository, resulting in multiple version iterations.

I won't change it frequently after that

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

okay mb 👌

- Introduced a toggle for enabling an extra properties editor in the settings.
- Updated the settings UI to include the new toggle and reorganized some sections for clarity.
- Added new translations for the extra properties editor feature in multiple languages.
- Implemented a new script to scan wallpaper directories for compatibility with extra properties.
- Updated the manifest to include the new configuration option for the extra properties editor.
…ompatibility scan logging

feat(settings): update default settings handling for volume, mute, audio effects, and mouse/parallax options
fix(i18n): update translations for compatibility check messages and search placeholders in multiple languages
@PaloMiku PaloMiku marked this pull request as draft April 10, 2026 16:19
@github-actions
Copy link
Copy Markdown
Contributor

Automatic Code Quality Review


File: linux-wallpaperengine-controller/Panel.qml

  • (H) Line 543: Use translations instead of hardcoded text. Instead of: "Example Label". To: pluginApi?.tr("panel.example-label")
+          label: "",

@PaloMiku
Copy link
Copy Markdown
Contributor Author

PaloMiku commented Apr 10, 2026

There have been a lot of feature and design updates in this time, so I need to turn it into a draft for now

New design overview:

图片

Once completed, I will provide a comprehensive list of changes.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 12 out of 13 changed files in this pull request and generated 4 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread linux-wallpaperengine-controller/Main.qml
Comment thread linux-wallpaperengine-controller/Main.qml
Comment thread linux-wallpaperengine-controller/Panel.qml
Comment thread linux-wallpaperengine-controller/Panel.qml
@PaloMiku PaloMiku changed the title feat(Linux WallpaperEngine Controller) Enhance panel localization and UI clarity across multiple languages feat(linux-wallpaperengine-controller): improve panel controls, extra properties, and configuration handling Apr 10, 2026
@PaloMiku PaloMiku marked this pull request as ready for review April 10, 2026 16:49
@PaloMiku PaloMiku requested a review from spiros132 April 10, 2026 16:49
@PaloMiku
Copy link
Copy Markdown
Contributor Author

PaloMiku commented Apr 10, 2026

Major Update Overview (April 11)

  1. Now, the plugin can handle most of the custom configurations from the source wallpaper.
图片
  1. A new one-click compatibility quick check now helps users quickly determine which wallpapers are basically unusable.
图片 图片
  1. Now with the pagination feature, displaying 24 wallpapers per page reduces user performance consumption and wallpaper search time.
图片

Copy link
Copy Markdown
Collaborator

@spiros132 spiros132 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some minor feedback about the PR :D

Also it looks like the Panel component has become very huge, I would recommend maybe for the next release to split it up into different components / files to make it easier to read and more organized.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This one has one more line added and one more line removed. Do double check that the translations match correctly with each other.

Copy link
Copy Markdown
Contributor Author

@PaloMiku PaloMiku Apr 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You're right, but since my native language is not a language other than Chinese, the quality of the corresponding translation may not be very good

clip: true
spacing: Style.marginS

GridView {
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it possible to use the noctalia NGridView instead of the qml one? To keep it more consistent with the noctalia look.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great, while reviewing the NGridView documentation, I found that card scrolling calculations can also be based on availableWidth, and it's more stable

…ation; update translations for status and reload actions
@PaloMiku PaloMiku requested a review from spiros132 April 10, 2026 17:20
Copy link
Copy Markdown
Collaborator

@spiros132 spiros132 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me. Thank you for the PR! :D

@ItsLemmy

@spiros132 spiros132 merged commit 066e3d3 into noctalia-dev:main Apr 13, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants